
/*
* 扩展tooltip 鼠标能停留在提示框进行操作
*/
(function ($) {
  'use strict';

  var DelayTooltip = function (element, options) {
    this.init('delayTooltip', element, options);
	  this.initDelayTooltip();
  };

  if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js');

  DelayTooltip.VERSION  = '0.1';

  DelayTooltip.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
    trigger: 'hover',
	  delay: {hide: 300}
  });

  DelayTooltip.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype);

  DelayTooltip.prototype.constructor = DelayTooltip;

  DelayTooltip.prototype.getDefaults = function () {
    return DelayTooltip.DEFAULTS;
  };

	DelayTooltip.prototype.delayTooltipEnter = function(){
		this.hoverState = 'in';
	};

	DelayTooltip.prototype.delayTooltipLeave = function(){
		this.hoverState = 'out';
		this.leave(this);
	};

  DelayTooltip.prototype.initDelayTooltip = function(){
	  this.tip()
		  .on('mouseenter.'  +  this.type, $.proxy(this.delayTooltipEnter, this))
      .on('mouseleave.' + this.type, $.proxy(this.delayTooltipLeave, this));
  };

  function Plugin(option) {
    return this.each(function () {
      var $this   = $(this);
      var data    = $this.data('bs.delayTooltip');
      var options = typeof option == 'object' && option;

      if (!data && /destroy|hide/.test(option)) return;
      if (!data) $this.data('bs.delayTooltip', (data = new DelayTooltip(this, options)));
      if (typeof option == 'string') data[option]();
    });
  }

  var old = $.fn.delayTooltip;

  $.fn.delayTooltip             = Plugin;
  $.fn.delayTooltip.Constructor = DelayTooltip;

  $.fn.delayTooltip.noConflict = function () {
    $.fn.delayTooltip = old;
    return this;
  };

})(jQuery);

$(function () {
    //首页-banner
    $('#carouselOne,#carouselTwo').carousel({
        interval: 2000
    });
    $('#carouselPter').carousel({
        interval:false
    });

    //首页-接入流程
    $(".process-bottom").on('mouseover', 'i', function () {
        var index = $(this).closest('li').index();
        if( $(this).closest('ul').children().length != (index+1) ){
            $('.process-module').find('.module-item.active').removeClass('active');
            $('.process-module').find('.module-item').eq(index).addClass('active');
        }
    });
    $(".process-module").on('mouseover', '.module-item', function () {
        $(this).addClass('active').siblings('.module-item').removeClass('active');
    });
    //api列表页 右侧导航生成
    function getApiListNav(){
        var $apiList = $('.apiDocument .api-docs-section:not(:last)'),
            $floor = $('.floor ul');
        $floor.children('li').remove();
        $($apiList).each(function(index, elem){
            var title = $(elem).find('.title span').text();
            var ident = index + 'F';
            $(elem).attr('id', ident).attr('name', ident);
            $floor.append($('<li><i></i><a href="#'+ident+'">'+title+'</a></li>'))
        })
    }
    getApiListNav();
    //api列表页-菜单
    $('#treeview').on('click', '.tree-group a.isChild', function () {
        var $ul = $(this).siblings('ul.tree-sub');
        if ($ul.is(':hidden')) {
            $ul.show();
            $(this).find('.icon').removeClass('arrowClose').addClass('arrowOpen');
        } else {
            $ul.hide();
            $(this).find('.icon').removeClass('arrowOpen').addClass('arrowClose');
        }
    });
    //api列表页-右侧映射监听
     $('#floor').on('click', 'a', function (e) {
         e.preventDefault();
         var id = $(this).attr('href');
         $(this).closest('li').addClass('active').siblings('li').removeClass('active');
         $(id).find('.title>i').removeClass('arrowCirClose').addClass('arrowCirOpen');
         $(id).find('.title').next().show();
         $("html,body").animate({
             scrollTop: $(id).offset().top - 90
         }, 500);
     });
     $('#floor [href="#"]').click(function(a) {
             a.preventDefault();
     });
     $('.apiDocument').on('click', '.api-docs-section>.title>i', function () {
         var $title = $(this).closest('.title');
         var $both = $title.next();
         if ($both.is(':hidden')) {
             $both.show();
             $(this).removeClass('arrowCirClose').addClass('arrowCirOpen');
         } else {
             $both.hide();
             $(this).removeClass('arrowCirOpen').addClass('arrowCirClose');
         }
     });
     $(document.body).scrollspy({
        target: "#floor",
        transitionOffsetTop:function(offsetTop){
            return offsetTop - 90;
        }
    });
     $(window).on("load", function() {
        $(document.body).scrollspy("refresh");
    });
    
    //api列表页 - 请求示例 json/xml
    $('#myTabs a').click(function (e) {
        e.preventDefault();
        $(this).tab('show');
    });

    //底部二维码提示
    $('#footer [data-toggle="delayTooltip"]').delayTooltip({
        placement: 'top',
        template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner" style="width:155px;height:145px;"></div></div>',
        html: true,
    });

    //置顶
    $(window).scroll(function(){
        var $toTop = $('.moveTop');
        if($(this).scrollTop() != 0){
            $toTop.css({'opacity':1,'visibility':'visible'});
        }else{
            $toTop.css({'opacity':0});
            setTimeout(function(){
                $toTop.css({'visibility':'hidden'});
            },500)
        }
    }).scroll();
    $(document).on('click','.moveTop',function(){
        var $window = $(window);
        var move = $window.scrollTop()/10;
        var timer = setInterval(function(){
            var top = $window.scrollTop();
            if(top != 0){
                $window.scrollTop(top-move);
            }else{
                clearInterval(timer);
                timer = null;
            }
        },40)
    });

});
